Listr2 Nedir?
Listr2, Node.js uygulamalarında terminal tabanlı görev listelerini yönetmek için kullanılan güçlü ve esnek bir kütüphanedir. Güzel terminal çıktıları ve zengin özellikler sunar.
import { Listr } from 'listr2';
const tasks = new Listr(
[
{
title: 'Bağımlılıkları Yükle',
task: () => installDependencies()
},
{
title: 'Dosyaları Derle',
task: (ctx, task) => {
return task.newListr([
{
title: 'CSS Derleme',
task: () => compileCss()
},
{
title: 'JavaScript Derleme',
task: () => compileJs()
}
])
}
}
],
{
concurrent: false,
exitOnError: true
}
);
Listr2'yi projenize eklemek için npm install listr2
komutunu kullanabilirsiniz.
Temel Özellikler
- İç içe görev listeleri oluşturabilme
- Paralel görev çalıştırma desteği
- Özelleştirilebilir renderer'lar
- Görev bağlamı (context) paylaşımı
- Zengin hata yönetimi
- TypeScript desteği
- Görev durumu izleme
Önemli Nokta: Listr2, orijinal Listr kütüphanesinin modern bir yeniden yazımıdır ve TypeScript ile tam uyumluluk sunar. — Listr2'nin ayırt edici özelliği
Renderer Tipleri
- Default: Varsayılan terminal gösterimi
- Silent: Sessiz çalışma modu
- Simple: Basitleştirilmiş çıktı
- Verbose: Detaylı görev bilgisi
- Test: Test ortamları için özel renderer
Renderer'lar, farklı kullanım senaryolarına göre görev çıktılarını özelleştirmenize olanak tanır.
Gelişmiş Özellikler
Bağlam Yönetimi
- Görevler arası veri paylaşımı
- Dinamik görev oluşturma
- Alt görevlere bağlam aktarımı
Hata Yönetimi
- Özelleştirilebilir hata işleme
- Yeniden deneme mekanizması
- Hata durumunda atlama seçeneği
Paralel görev çalıştırma kullanırken kaynak kullanımına dikkat edin.
Kullanım Örnekleri
const tasks = new Listr([
{
title: 'Veritabanı Yedekleme',
task: async (ctx, task) => {
task.output = 'Yedekleme başlatılıyor...';
await backupDatabase();
ctx.backup = true;
}
}
], {
renderer: 'verbose'
});
Listr2 vs Diğer Alternatifler
- Ora ile karşılaştırıldığında daha kapsamlı görev yönetimi
- Inquirer ile birlikte kullanılabilme
- CLI uygulamaları için optimize edilmiş yapı
- Modern JavaScript/TypeScript özellikleri
Özetle, Listr2, modern CLI uygulamaları için görev listesi yönetiminde güçlü ve esnek bir çözüm sunmaktadır. TypeScript desteği, zengin özellik seti ve özelleştirilebilir yapısı ile özellikle karmaşık görev otomasyonları için ideal bir seçenektir.